#ifndef _BEHAVIOUR_MANAGER_H_
#define _BEHAVIOUR_MANAGER_H_

#include <vector>
#include <map>
#include "Singleton.h"
#include "GameObject.h"



namespace App {

class GameObjectManager : public CSingleton<GameObjectManager>
{
public :
	GameObjectManager();
	virtual ~GameObjectManager();
    
	void AddGameObject(GameObject* pGameObject);
	GameObject* FindGameObject(std::string name);
	void FindGameObjectWithTag(std::vector<GameObject*> &vGameObject,std::string &tag);
	void Update(float delta);
private:
	std::vector<GameObject*>  m_vGameObject;
	std::map<std::string,GameObject*> m_mGameObject; 


};


#define GameObjectMgr GameObjectManager::Instance()

}
#endif